<?php
/**
 * Error controller.
 *
 * @category PhpCilux
 * @package  PhpCilux
 */

/**
 * Error controller.
 *
 * @package PhpCilux
 */
class ErrorController extends Zend_Controller_Action
{

    /**
     * Action with error handling.
     *
     * @return void
     */
    public function errorAction()
    {
        $errors = $this->_getParam('error_handler');

        switch ($errors->type) {
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
                // Handling 404 error -- controller or action not found.
                $this->getResponse()->setHttpResponseCode(404);
                $this->view->message = 'Page not found';
                break;

            default:
                // Handling application error.
                $this->getResponse()->setHttpResponseCode(500);
                $this->view->message = 'Application error';
                break;
        }

        $this->view->exception = $errors->exception;
        $this->view->request   = $errors->request;
    }

}

